Method and system for calculating and verifying the integrity of data in a data transmission system

ABSTRACT

A method is described of calculating and verifying the integrity of data in a data communication system. The system comprises a base station and one or more remote stations, such as in an RFID system. The method includes transmitting a select instruction from the base station to the one or more remote stations, the select instruction containing a data field which matches a portion of an identity or other data field in one or more of the remote stations; transmitting from a selected remote station or stations a truncated reply containing identity data or other data of the remote station but omitting the portion transmitted by the base station; calculating in the base station a check sum or CRC from the data field originally sent and the truncated reply data received and comparing the calculated check sum or CRC with the check sum or CRC sent by the remote station.

The present invention relates to a method and system for calculating andverifying the integrity of data in a data transmission system and moreparticularly, but not exclusively, to data transmission systems overradio between a base station and one or more mobile or remote stationssuch as (but not limited to) those used in Radio FrequencyIdentification (RFID) Systems. The invention also provides a transponderor tag to implement the method.

BACKGROUND

A Radio Frequency Identification System is usually comprised of aninterrogator (base station) commonly referred to as a reader or scannerand one or more transponders (mobile stations) usually called tags orelectronic labels.

In systems of known art, the reader issues a request or command for anytags within range to reply with their identity or their stored data. Ina variant, tags on detecting the presence of a reader will send theiridentity or stored data. The identity or stored data is transmitted bythe tag using either a self-contained transmitter or by means ofmodulated backscatter as bursts of data within messages or packets. Amessage may contain either a portion or all of the identity or storeddata.

The transmission from the tag in the form of identity or data will oftenhave a checksum or cyclic redundancy code (CRC) appended to the identityor data, this checksum or CRC being used by the reader to test for thecorrectness of the data received by it from the tag.

Where multiple tags are present in the reader field it is important thattag transmissions and the length of messages be kept to the minimumnecessary to convey identity or data content of the tags being read bythe reader. This is achieved by using deliberate truncation of the tagmessage transmissions where the reader knows a portion of the tags'identities or data content.

Referring to FIG. 1, one method is for the reader to issue a Selectinstruction to the tag population present. The Select instructioncontains a data field, shown in FIG. 1 as having S bits, that matches aportion of the data field in the tag identity, the tag identity having Dbits. Tags whose identity have a matching portion respond bytransmitting a shortened reply containing their identity omitting theportion previously transmitted by the reader, shown as N bits equal toD-S bits. A checksum or CRC, usually, but not necessarily, consisting of16 bits, is shown appended to the N bits to define a “truncated message”or “truncated reply”.

Now referring to the checksum or CRC; this may be either generated inreal time by the tag when the tag transmits its message, alternativelyit may be calculated when the data is written to the tag and stored inthe tag, in which case it refers to the full tag identity or storeddata. When the tag transmits its full identity or stored data, thereader will not know necessarily whether the checksum or CRC wascalculated by the tag at the time of transmission or whether it waspreviously stored in the tag.

However, if the tag transmits only a portion of its identity or storeddata, for example in response to a request by the reader for it to senda “truncated reply”, in the case of a generated [in real time] checksumor CRC it will be based only on the portion of the identity or storeddata actually transmitted, whereas in the case of the pre-calculated andstored checksum or CRC it will be based on the full identity or storeddata. Therefore in the latter case, when the reader tests the receivedmessage for correctness using the stored checksum or CRC, it will notcompute correctly and will discard the message as being in error.

This invention strives to overcome the problem described above.

SUMMARY OF THE INVENTION

In one aspect of the invention, there is provided a method ofcalculating and verifying the integrity of data in a data communicationsystem comprising a base station and one or more remote stations, themethod including transmitting a select instruction from the base stationto said one or more remote stations, the select instruction containing adata field which matches a portion of an identity or other data field inone or more of the remote stations; transmitting from a selected remotestation or stations a truncated reply containing identity data or otherdata of the remote station but omitting the portion transmitted by thebase station; calculating in the base station a check sum or CRC fromthe data field originally sent and the truncated reply data received andcomparing the calculated check sum or CRC with the check sum or CRC sentby the remote station.

The calculation in the base station of a check sum or CRC may be basedfrom the same section or sections of the full data message used by theremote station to calculate the CRC sent with the data transmitted, thisbeing the data field originally sent, and the truncated reply datareceived and comparing the calculated check sum or CRC with the checksum or CRC sent by the remote station.

In one embodiment the base station is a reader or interrogator and theremote station or stations are RFID transponders.

The remote station typically transmits its check sum or CRC as dataeither preceding or appended to its identity or other data in itstruncated reply. In response to a select instruction or instructionsfrom the base station the remote station clocks data corresponding tothat in the select instruction through a checksum generator, the data inthe truncated reply also being clocked through the checksum generator toderive a checksum which is clocked out preceding or appended to thetruncated reply data.

In one embodiment the base station begins calculating the anticipatedchecksum or CRC of the remote station or stations during a periodpreceding the receipt of the truncated reply, to derive a partialchecksum calculation based on the data field in the select information,the partial checksum calculation being temporarily saved for use whenthe truncated reply is received. The base station may begin calculatingthe partial checksum during the transmission of the select information,and the truncated reply from the remote station is clocked through achecksum generator to continue calculating the checksum, beginning fromthe saved partial checksum, whereby upon receiving the last bit from thetruncated reply, the final checksum calculated in the base station canbe compared with that sent by the remote station.

In one embodiment the base station resets the checksum calculation logicand pre-loads the partially calculated checksum previously saved, readyto receive the truncated reply from another selected remote station.Alternatively, having received the truncated reply from a remotestation, the base station recalculates the data in the selectinformation following successful reception and decoding of eachtruncated reply, for calculating together with the data in the truncatedreply the checksum or CRC, and continuing this process until the basestation transmits a new select information request to the remotestations.

In a preferred embodiment the method includes sending a command from thereader to a tag command decoder for decoding the command, shifting datain the tag memory to a tag shift register in synchronism with incomingmask data from the reader to a comparator, performing a bit by bitcomparison between the mask data and the tag memory data at thecomparator, and calculating a checksum or CRC at a checksum or CRCgenerator within the tag.

Conveniently the input data from the reader and the output data from thetag shift register are presented to respective inputs of a logiccircuit, and in one embodiment the method includes setting within thetag a Compare OK or Select flag, which serves to enable the tag to takepart in an arbitration cycle, when the tag data and the mask valuematch.

In one embodiment when the tag is receiving the mask and performing thecomparison with the internal memory data, the method also includes thestep of shifting the internal data through the checksum or CRCgenerator, this being the same CRC generator used to generate the tagCRC. Once the Select flag has been set the tag stops shifting anyfurther data through the transmit shift register and also no furtherdata is shifted through the CRC generator, the CRC generator freezes andretains its current state.

Conveniently a pointer in the tag marks the position where thecomparison ended, and the tag participating in the arbitration sequenceas determined by the arbitration algorithm implemented, and by commandfrom the reader (sending arbitration commands), switches on itsTransmitter, and begins to shift out the tag ID data, starting from bitposition following the point where the comparison with the mask ended.

In another aspect of the invention, there is provided a system forcalculating and verifying the integrity of data in a data communicationsystem comprising a base station and one or more remote stations, thesystem comprising base station transmitting circuitry for transmittingselect instructions from the base station to said one or more remotestations, the select instruction containing a data field which matches aportion or portions of an identity or other data field in one or more ofthe remote stations; remote station transmitting circuitry fortransmitting from a selected remote station or stations a truncatedreply containing identity data or other data of the remote station butomitting the portion transmitted by the base station; calculating meansfor calculating in the base station a check sum or CRC from the datafield originally sent and the truncated reply data received and acomparator for comparing the calculated check sum or CRC with the checksum or CRC sent by the remote station.

The base station is in one embodiment a reader or interrogator and theremote station or stations are RFID transponders. This inventiontherefore provides a method and system for a reader to correctlyvalidate a tag transmission in a communications system when the tagtransmission is truncated; that is only a portion of the tag's identityis transmitted. This invention is particularly useful in those caseswhere a checksum or CRC for the identity or data is stored in the tag.

For the purposes of this description the term checksum shall apply toCRCs or other form of error checking.

The invention also provides a means for a tag to reply to a readerrequest in a shortened or truncated form whilst still being able toprovide the reader with a full error checking capability as if theentire message had been transmitted whether the checksum is calculatedand stored on the tag when the tag is programmed or whether the checksumis generated ‘on the fly’ by the tag at the time of the tag sending areply. This is particularly important when the tag is to contain userwritten data, where this data can be changed by the user. If thechecksum were pre-calculated, and stored on the tag and user datasubsequently changed the CRC would be incorrect. This would mean thatthe CRC could not be protected as it would have to be re-written eachtime that a user modified the data content. This invention thereforeallows a portion of the tag data such as the ID to be locked andprotected whilst giving users the freedom to change their data and yetstill providing a valid and flexible CRC for over the air communicationserror checking whilst also retaining the flexibility of truncatedmessaging.

Another aspect of the invention is transponder or tag for use in an RFIDsystem with a reader or interrogator, comprising a command decoder fordecoding the command from the reader, a shift register for shifting datain the tag memory in synchronism with incoming mask data from the readerto a comparator, the comparator performing a bit by bit comparisonbetween the mask data and the tag memory data, and a checksum or CRCgenerator.

There are several possible implementations of the checksum or CRCcalculation which all rely on the same principle

For example, in the embodiment described above, the CRC is calculated onthe tag over the full stored data (message) even though a truncatedmessage is transmitted. In this case the reader calculates the CRC onthat portion of the data sent as the selection criterion combined withthat portion of the data in the tag reply. The selection mask isdescribed above as corresponding to a sequence of bits from the START ofdata in the relevant tag data field. In alternative embodiments theselection mask data may be from the MIDDLE of data in the tag or END ofdata in the tag. In other words the selection does not necessarily needto start at the most significant bit of the tag stored data. It may alsorefer to several unconnected fields with the tag data memory.

In another implementation, the tag contains a stored CRC calculated overthe full data message which message is then truncated when it is sent.The reader calculates the crc on that portion of the data sent as theselect criterion [mask] combined with that portion of the data sent bythe tag. Selection mask may be from START of data in tag, MIDDLE of datain tag or END of data in tag. As described above the selection does notnecessarily need to start at the most significant bit of the tag storeddata.

In a further implementation, the tag may contain multiple stored CRCsfor multiple data fields, each data field having its own CRC. In thiscase truncation may occur on boundaries, each boundary associated withone stored CRC (plus one for the full tag data). Selection of the CRCand determination of the boundaries can be done on the tag or by aspecific reader command or instruction to the tag. Selection may beequal to the field size of each data field or may be longer coveringmultiple data fields.

In yet a further embodiment the CRC is based on the transmitted[truncated] portion of the tag message, this is used when the readercalculates and uses only that portion of the data sent by the tagignoring the unsent part.

In another aspect of the invention, there is provided a method ofcalculating and verifying the integrity of data in a data communicationsystem comprising one or more base stations and one or more remotestations, the method including transmitting a select instruction fromthe remote station to said one or more remote base stations, the selectinstruction containing a data field which matches a portion of anidentity or other data field in one or more of the remote base stations;transmitting from a selected bases station or stations a truncated replycontaining identity data or other data of the base station but omittingthe portion transmitted by the remote station and calculating in theremote station a check sum or CRC from the data the truncated reply datareceived.

In a further aspect of the invention there is provided a reader orinterrogator for use in a system with one or more remote stations, thereader including a transmitter arranged to transmit one or more selectinstructions to said one or more remote stations, the select instructionor instructions containing a data field which matches a portion of anidentity or other data field in one or more of the remote stations; areceiver arranged to receive a truncated reply containing identity dataor other data of the remote station but omitting the portion transmittedby the reader or interrogator; calculating means for calculating a checksum or CRC from the field originally sent and the truncated reply datareceived, or calculated from the check sum or CRC from the truncateddata alone and a comparator for comparing the calculated check sum orCRC with the check sum or CRC sent by the remote station.

Other method, system and transponder or tag features are defined in theappended claims.

DESCRIPTION OF AN EMBODIMENT OF THE INVENTION

The invention will be described further, by way of example, withreference to the accompanying drawings, in which:

FIG. 1 illustrates a typical bit format for a tag identity and a portionof that bit identity used by an interrogator in its command to select asub-population of tags;

FIG. 2 shows a flow diagram of the command response sequence;

FIG. 3 shows the relative internal timing in the tag of the incomingcommand, the compare sequence and the transmitted tag message, togetherwith the internal timing signals A, B, C and D and

FIG. 4 is a block diagram of a typical tag in accordance with oneembodiment of the invention.

A typical RFID system comprises a reader and a plurality of tags, thereader issues a request command containing a mask for all tags presentwithin the reader's illuminating field to reply if for example the first16 bits of the tag identity match the 16 bits in the mask fieldcontained within the reader's request command. The tags whose 16 bitsmatch, reply. If the system uses binary search or collision arbitrationthe tags will reply according to the accepted algorithm for theirparticular system as is well known in the art. The tag message (reply)will contain the tag's identity and the checksum which may eitherprecede or be appended to the identity in the tag transmission. Theorder of identity and checksum within the tag transmitted message(reply) is unimportant, in other words it does not matter whether thechecksum is transmitted before or after the identity/data.

The checksum will be calculated over the entire identity or stored dataas the case may be. In one example, the tag transmitted message will beto exclude the first 16 bits of its identity but will contain thechecksum as if the entire message had been transmitted.

Operation of the Reader

The reader clocks in the tag transmitted message.

When the reader sends the request to the tag it begins calculating thetag reply checksum in the example using the 16 bit, mask value containedin the request which will be compared by the tags, the value of thispartial checksum calculation being temporarily saved for use withmultiple tag replies.

As each tag replies, the tag message transmission is clocked into thereader and the reader continues calculating the checksum from that pointonwards so that when the last bit of the tag message is clocked in thechecksum computes correctly and therefore the reader knows that therewas no error.

After having received the reply from the first tag, the reader resetsthe checksum calculation logic and pre-loads the partially calculatedchecksum saved earlier and then repeats the procedure above for each tagtransmission received by it. An alternative method would have the readerrecalculate the first portion of the checksum following successfulreception and decoding of each tag transmission until such time as itre-issues a new request.

Operation of the Tag

In the case of tags which generate their checksum ‘on the fly’ as theyclock out their identity or data. On receiving a request command fromthe reader to send a truncated reply, as the command data transmissionis received from the reader, the data field in the command containingthe mask will be clocked through the checksum generator on the tag. Asthe balance of the tag data is transmitted by the tag, this too isclocked through the checksum generator, and then finally the checksum isclocked out.

One particular embodiment will now be described. in which the systemconsists of an rfid reader and a plurality of tags. Each tag isidentical to the next except for its unique identity which is stored inits memory. The operation is as follows.

The reader issues a select command or commands to the tags present inthe reader's communication field. The select command has as one of itsparameters, a mask value. This mask value represents a portion of theidentification number of a family of tags, a number of which may bepresent. On receiving a command from the reader, all tags present decodethe command in a command decoder 2, as show in FIG. 4.

If the command is a select command, the tags then compare the mask valuecontained in the command with the corresponding portion of theiridentity. This is done by shifting the data in the tag memory 14 throughthe tag transmit shift register 12 in sync with the incoming mask dataand performing a bit by bit comparison between the two, via XOR Gatelogic 10 and a comparator 4. If the tag data and the mask value match,then the tag sets a Compare OK or Select flag which serves to enable thetag to take part in the arbitration cycle which follows. When the tag isreceiving the mask and performing the comparison with the internal data,it is also shifting this internal data through a CRC generator 8 on thetag, this being the same CRC generator 8 used to generate the tag CRC.

Once the Select flag has been set the tag stops shifting any furtherdata through the transmit shift register 12 and also no further data isshifted through the CRC generator 8, however the CRC generator 8 freezesand retains its current state. A pointer 6 in the tag also marks theposition where the comparison ended. When the tag participates in thearbitration sequence as determined by the arbitration algorithmimplemented and by command from the reader (sending arbitrationcommands) it switches on its Transmitter (which may be an activetransmitter or backscatter modulator depending on the hardwareconfiguration), switch 16 is closed and switch 14 is connected to theoutput of the Transmit Shift Register 12, and begins to shift out thetag ID data, starting from bit position following the point where thecomparison with the mask ended. At the same time that this data isshifted out to the modulator, it is also shifted through the CRCgenerator 8. The CRC generator 8 takes up where it previously stopped asif it had not been frozen and without resetting its value. When the lastdata bit has been shifted out, the tag switches, the switch 14connecting to the output of the CRC generator. This changes the outputline from the Transmit Shift Register 12 to the output of the CRCgenerator 8 and continues transmitting until all the CRC bits have beentransmitted. When the last CRC bit has been transmitted the tag switchesoff the transmitter and returns to the standby state.

During this process the reader has been undertaking its own CRC check.The first part of the CRC check is generated from the mask value whichthe reader sent to the tags present as the mask parameter in the Selectcommand. This interim CRC value so calculated is retained by the readerand is used to further calculate the expected CRC value for the incomingtag transmissions. As a tag transmission is received by the reader, thereader calculates the CRC on the incoming data stream using thepreviously retained CRC value as it starting point. Once the entire tagmessage has been received including the tag CRC, the reader calculatedCRC is compared with the tag CRC and if they match then the reader knowsthat the message was correctly received.

FIG. 2 shows a flow diagram of operations in the tag upon receiving acommand or selection instruction from the reader. As shown the tag isinitially in a Standby state awaiting the receipt of a command from thereader. If the command is a “Select” command containing a mask datafield the tag proceeds to compare the mask with “n” bits of its tag ID.

The tag clocks its TX shift register 12 together with the incoming maskdata and performs a bit by bit comparison of the tag and the mask for“n” bits as determined by the mask length. Simultaneously the ID isshifted through the tag CRC Generator 8. At this time the readercalculates the first portion of the CRC based on the mask valuetransmitted to the tag in the select command.

Referring to steps shown in FIG. 2, if the mask and “n” bits of the tagID match, the tag sets its Selected flag and waits for its turn totransmit as determined by the system arbitration algorithm. The pointer6 indicates the position of the next bit in the tag memory following thelast bit compared. The CRC generator 8 retains its current value.

When it is the tag's turn to transmit, it starts its transmission fromthe bit position indicated by the pointer 6. The ID is simultaneouslyshifted through the CRC generator, the CRC generator continues from itslast position without resetting. At the same time as the reader receivesthe tag transmission, it continues from where it left off, calculatingthe CRC on the incoming message.

As can be seen in the flow diagram of FIG. 2, when the last ID bit isshifted out of the tag memory, the tag switches to shifting out the CRCbits. When the last CRC bit has been shifted out the TX switches offcompleting the reply cycle. The CRC is calculated over the complete IDstored in memory 14 even though only a portion of the ID was actuallytransmitted. Contemporaneously, once the reader has received the lastmessage bit from the tag it compares the CRC transmitted by the tag withthe CRC generated in the reader from the mask value transmitted by itand the data stream received from the tag.

As shown in FIG. 2 there are several instances in the flow diagram whenthe tag will revert to its Standby state, these being when the commandreceived is not found to be a “Select” command, when the mask bits donot match up to the bits in the tag ID and when the reply cycle of thetag has been completed.

FIG. 3 shows the relative internal timing in the tag of the incomingcommand, the compare sequence and the transmitted tag message, togetherwith the internal timing signals A, B, C and D.

This system and method may also be used in the reverse situation where abase station transmits a truncated message, the remote station thencalculating a CRC or checksum based on a known portion of the basestation command or message which is not sent.

It will be appreciated that this is just one of many possibleembodiments of this method.

For example, in the embodiment described above, the CRC is calculated onthe tag over the full stored data (message) even though a truncatedmessage is transmitted. In this case the reader calculates the CRC onthat portion of the data sent as the selection criterion combined withthat portion of the data in the tag reply. The selection mask isdescribed above as corresponding to a sequence of bits from the START ofdata in the relevant tag data field. In alternative embodiments theselection mask data may be from the MIDDLE of data in the tag or END ofdata in the tag. In other words the selection does not necessarily needto start at the most significant bit of the tag stored data. It may alsorefer to several unconnected fields with the tag data memory.

In another implementation, the tag contains a stored CRC calculated overthe full data message which message is then truncated when it is sent.The reader calculates the crc on that portion of the data sent as theselect criterion [mask] combined with that portion of the data sent bythe tag. Selection mask may be from START of data in tag, MIDDLE of datain tag or END of data in tag. As described above the selection does notnecessarily need to start at the most significant bit of the tag storeddata.

In a further implementation, the tag may contain multiple stored CRCsfor multiple data fields, each data field having its own CRC. In thiscase truncation may occur on boundaries, each boundary associated withone stored CRC (plus one for the full tag data). Selection of the CRCand determination of the boundaries can be done on the tag or by aspecific reader command or instruction to the tag. Selection may beequal to the field size of each data field or may be longer coveringmultiple data fields.

In yet a further embodiment the CRC is based on the transmitted[truncated] portion of the tag message, this is used when the readercalculates and uses only that portion of the data sent by the tagignoring the unsent part.

It will be appreciated by the skilled person in the art that theinvention is not restricted to the above embodiments, for example thearbitration protocols, and the operating parameters associated withmodulation and frequency may be modified.

By way of illustration the invention may make use of the frequency andmodulation parameters as exemplified in RFID International Standard,ISO/IEC 18000-6, first edition, published on 15 Aug. 2004, withappropriate modification of the arbitration techniques, for both Type A(ALOHA) and Type B (binary tree search). This will be readilyappreciated by those persons skilled in the art.

1. A method of calculating and verifying the integrity of data in a datacommunication system comprising a base station and one or more remotestations, the method including; transmitting one or more selectinstructions from the base station to said one or more remote stations,the select instruction or instructions containing a data field whichmatches a portion of an identity or other data field in one or more ofthe remote stations; communicating from a selected remote station orstations a truncated reply containing identity data or other data of theremote station but omitting the portion transmitted by the base station;and calculating in the base station a check sum or CRC from the datafield originally sent and the truncated reply data received andcomparing the calculated check sum or CRC with the check sum or CRC sentby the remote station.
 2. A method as claimed in claim 1, wherein thebase station is a reader or interrogator and the remote station orstations are RFD transponders.
 3. A method as claimed in claim 2,including sending a command from the reader to a remote station commanddecoder for decoding the command, shifting data in a remote stationmemory to a remote station shift register in synchronism with incomingmask data from the reader to a comparator, performing a bit by bitcomparison between the mask data and the remote station memory data atthe comparator, and calculating a checksum or CRC at a checksum or CRCgenerator within the remote station.
 4. A method as claimed in claim 3,including presenting the input data from the reader and the output fromthe remote station shift register to respective inputs of a logiccircuit.
 5. A method as claimed in claim 3, wherein when the remotestation is receiving the mask and performing the comparison with theinternal memory data, it is also shifting the internal data through thechecksum or CRC generator, this being the same CRC generator ofgenerators used to generate the remote station CRC.
 6. A method asclaimed in claim 1, wherein the remote station transmits its check sumor CRC as data either preceding or appended to its identity or otherdata in its truncated reply.
 7. A method as claimed in claim 1, whereinin response to a select instruction from the base station the remotestation clocks data corresponding to that in the select instructionthrough a checksum generator, the data in the truncated reply also beingclocked through the checksum generator to derive a checksum which isclocked out appended to the truncated reply data.
 8. A method as claimedin claim 1, wherein the base station begins calculating the anticipatedchecksum or CRC of the remote station or stations during a periodpreceding the receipt of the truncated reply, to derive a partialchecksum calculation based on the data field in the select information,the partial checksum calculation being temporarily saved for use whenthe truncated reply is received.
 9. A method as claimed in claim 8,wherein the base station begins calculating the partial checksum duringthe transmission of the select information.
 10. A method as claimed inclaim 8, wherein the truncated reply from the remote station is clockedthrough a checksum generator to continue calculating the checksum,beginning from the saved partial checksum, whereby upon receiving thelast bit from the truncated reply, the final checksum calculated in thebase station can be compared with that sent by the remote station.
 11. Amethod as claimed in claim 10, wherein having received the truncatedreply from a remote station, the base station resets the checksumcalculation logic and pre-loads the partially calculated checksumpreviously saved, ready to receive the truncated reply from anotherselected remote station.
 12. A method as claimed in claim 10, whereinhaving received the truncated reply from a remote station, the basestation recalculates the data in the select information followingsuccessful reception and decoding of each truncated reply, forcalculating together with the data in the truncated reply to derive thechecksum or CRC, and continuing this process until the base stationtransmits a new select information request to the remote stations.
 13. Amethod as claimed in claim 1, including setting within the remotestation a Compare OK or Select flag, which serves to enable the remotestation to take part in an arbitration cycle, when the remote stationdata and the mask value match.
 14. A method as claimed in claim 13,wherein once the Select flag has been set the remote station stopsshifting any further data through the transmit shift register and alsono further data is shifted through the CRC generator, the CRC generatorfreezing and retaining its current state.
 15. A method as claimed inclaim 14, wherein a pointer in the remote station marks the positionwhere the comparison ended, and the remote station participating in thearbitration sequence as determined by the arbitration algorithmimplemented, and by command from the reader (sending arbitrationcommands), switches on its Transmitter, and begins to shift out theremote station ID data, starting from bit position following the pointwhere the comparison with the mask ended.
 16. A method as claimed inclaim 1, wherein the calculation in the base station of a check sum orCRC may be based from the same section or sections of the full datamessage used by the remote station to calculate the CRC sent with thedata transmitted, this being the data field originally sent, and thetruncated reply data received and comparing the calculated check sum orCRC with the check sum or CRC sent by the remote station.
 17. A systemfor calculating and verifying the integrity of data in a datacommunication system comprising a base station and one or more tags, thesystem comprising: transmitting means for transmitting selectinstructions from the base station to said one or more tags, the selectinstruction containing a data field which matches a portion of anidentity or other data field in one or more of the tags; transmittingmeans for transmitting from a selected tag or stations a truncated replycontaining identity data or other data of the tag but omitting theportion transmitted by the base station; and calculating means forcalculating in the base station a check sum or CRC from the data fieldoriginally sent and the truncated reply data received; and a comparatorfor comparing the calculated check sum or CRC with the check sum or CRCsent by the tag.
 18. A system as claimed in claim 17, wherein the basestation is a reader or interrogator and the tag or stations are RFIDtransponders.
 19. A system as claimed in claim 18, wherein each tagcomprises a command decoder for decoding the command from the reader, ashift register for shifting data in a tag memory in synchronism withincoming mask data from the reader to a comparator, the comparatorperforming a bit by bit comparison between the mask data and the tagmemory data, and a checksum or CRC generator.
 20. A system as claimed inclaim 19, wherein the input data from the reader and the output from theshift register are presented to respective inputs a Logic Gate.
 21. Asystem as claimed in claim 19, wherein when the tag data and the maskvalue match, the tag sets a Compare OK or Select flag which serves toenable the tag to take part in an arbitration cycle.
 22. A system asclaimed in claim 21, wherein once the Select flag has been set the tagstops shifting any further data through the transmit shift register andalso no further data is shifted through the CRC generator, the CRCgenerator being controlled to freeze and retain its current state.
 23. Asystem as claimed in claim 22, wherein a pointer in the tag marks theposition where the comparison ended, and the tag participates in thearbitration sequence as determined by the arbitration algorithmimplemented, and by command from the reader (sending arbitrationcommands), it switches on its Transmitter, and begins to shift out thetag ID data, starting from bit position following the point where thecomparison with the mask ended.
 24. A system as claimed in claim 23,wherein at the same time as the tag ID data is shifted out to themodulator, it is also shifted through the CRC generator, the CRCgenerator taking up where it previously stopped as if it had not beenfrozen and without resetting its value.
 25. A system as claimed in claim24, wherein when the last data bit has been shifted out, a switch withinthe tag switches to the output of the CRC generator which continuestransmitting until all the CRC bits have been transmitted.
 26. A systemas claimed in claim 25, wherein when the last CRC bit has beentransmitted a further switch in the tag switches off the transmitter andreturns the tag to the standby state.
 27. A system as claimed in claim19, wherein means are provided whereby when the tag is receiving themask and performing the comparison with the internal memory data, it isalso shifting the internal data through the checksum or CRC generator,this being the same CRC generator used to generate the tag CRC.
 28. Atransponder or tag for use in an RFID system with a reader orinterrogator, comprising: a command decoder configured to decode acommand from the reader, a shift register configured to shift data inthe tag memory in synchronism with incoming mask data from the reader toa comparator, the comparator configured to perform a bit by bitcomparison between the mask data and the tag memory data, wherein thedata in the tag memory is internal data of the tag, and a checksum orCRC generator configured to generate a checksum or CRC of the data inthe tag memory, wherein the shift register is further configured toshift data in the tag memory to the checksum or CRC generator.
 29. Atransponder or tag as claimed in claim 28, wherein the input data fromthe reader and the output from the shift register are presented torespective inputs a logic gate.
 30. A transponder or tag as claimed inclaim 28, wherein when the tag data and the mask value match, the tagsets a Compare OK or Select flag which serves to enable the tag to takepart in an arbitration cycle.
 31. A transponder or tag as claimed inclaim 30, wherein once the Select flag has been set the tag stopsshifting any further data through the transmit shift register and alsono further data is shifted through the CRC generator, the CRC generatorbeing controlled to freeze and retain its current state.
 32. Atransponder or tag as claimed in claim 31, wherein a pointer in the tagmarks the position where the comparison ended, and the tag participatesin the arbitration sequence as determined by the arbitration algorithmimplemented, and by command from the reader (sending arbitrationcommands), it switches on its Transmitter, and begins to shift out thetag ID data, starting from bit position following the point where thecomparison with the mask ended.
 33. A transponder or tag as claimed inclaim 32, wherein at the same time as the tag ID data is shifted out tothe modulator, it is also shifted through the CRC generator, the CRCgenerator taking up where it previously stopped as if it had not beenfrozen and without resetting its value.
 34. A transponder or tag asclaimed in claim 33, wherein when the last data bit has been shiftedout, a switch within the tag switches to the output of the CRC generatorwhich continues transmitting until all the CRC bits have beentransmitted.
 35. A transponder or tag as claimed in claim 33, whereinwhen the last CRC bit has been transmitted a further switch in the tagswitches off the transmitter and returns the tag to the standby state.36. A transponder or tag as claimed in claim 28, wherein means areprovided whereby when the tag is receiving the mask and performing thecomparison with the internal memory data, it is also shifting theinternal data through the checksum or CRC generator, this being the sameCRC generator used to generate the tag CRC.
 37. A transponder or tag asclaimed in claim 28, wherein means are provided whereby when the tag isreceiving the mask and performing the comparison with the internalmemory data, it is also shifting the internal data through the checksumor CRC generator, this being a second CRC generator similar to that usedto generate the tag CRC.
 38. A method of calculating and verifying theintegrity of data in a data communication system comprising a basestation and one or more remote stations, the method including:transmitting a select instruction from the base station to said one ormore remote stations, the select instruction containing a data fieldwhich matches a portion of an identity or other data field in one ormore of the remote stations; communicating from a selected remotestation or stations a truncated reply containing identity data or otherdata of the remote station but omitting the portion transmitted by thebase station; and calculating in the base station a check sum or CRCfrom the data the truncated reply data received and comparing thecalculated check sum or CRC with the check sum or CRC sent by the remotestation.
 39. A method as claimed in claim 38, wherein the CRC is basedon the transmitted portion of the remote station message, the readercalculating and using only that portion of the data sent by the remotestation ignoring the unsent part.
 40. A method of calculating andverifying the integrity of data in a data communication systemcomprising one or more base stations and one or more remote stations,the method including: transmitting a select instruction from the remotestation to said one or more remote base stations, the select instructioncontaining a data field which matches a portion of an identity or otherdata field in one or more of the remote base stations; transmitting froma selected bases station or stations a truncated reply containingidentity data or other data of the base station but omitting the portiontransmitted by the remote station; calculating in the remote station acheck sum or CRC from the data the truncated reply data received; andcomparing the calculated check sum or CRC with the check sum or CRC sentby the remote station.
 41. A reader or interrogator for use in a systemwith one or more remote stations, the reader including: a transmitterarranged to transmit one or more select instructions to said one or moreremote stations, the select instruction or instructions containing adata field which matches a portion of an identity or other data field inone or more of the remote stations; a receiver arranged to receive atruncated reply containing identity data or other data of the remotestation but omitting the portion transmitted by the reader orinterrogator; calculating means for calculating a check sum or CRC fromthe field originally sent and the truncated reply data received, orcalculated from the check sum or CRC from the truncated data alone; anda comparator for comparing the calculated check sum or CRC with thecheck sum or CRC sent by the remote station.